<?php

namespace app\api\controller\v1;

use app\api\validate\IndexListValidate;
use app\lib\exception\IndexListMissException;
use think\Controller;

class IndexList extends Controller
{
    // 首页限时促销列表
    public function getTimeLimitList()
    {
        // 创建验证器
        (new IndexListValidate())->goCheck();
        $timeLimit = \app\api\model\IndexList::getTimeLimit();

        if (!$timeLimit) {
            throw new IndexListMissException([
                'msg' => '请求的首页限时促销列表不存在'
            ]);
        }

        return $timeLimit;
    }

    // 首页限量抢购列表
    public function getTimeLimitPayList($limit_count)
    {
        // 创建验证器
        (new IndexListValidate())->goCheck();
        $timeLimitPay = \app\api\model\IndexList::getTimeLimitPay($limit_count);

        if (!$timeLimitPay) {
            throw new IndexListMissException([
                'msg' => '请求的首页限量抢购列表不存在'
            ]);
        }

        return $timeLimitPay;
    }

    // 首页特价商品列表
    public function getDiscountPriceList($discount_count)
    {
        // 创建验证器
        (new IndexListValidate())->goCheck();
        $discountPriceList = \app\api\model\IndexList::getDiscountPrice($discount_count);

        if (!$discountPriceList) {
            throw new IndexListMissException([
                'msg' => '请求的首页特价商品列表不存在'
            ]);
        }

        return $discountPriceList;
    }

    // 首页推荐列表
    public function getRecommendList($recommend_count)
    {
        // 创建验证器
        (new IndexListValidate())->goCheck();
        //静态调用
        $recommend = \app\api\model\IndexList::getRecommendByCount($recommend_count);

        if (!$recommend) {
            throw new IndexListMissException([
                'msg' => '请求的首页推荐列表不存在'
            ]);
        }

        return $recommend;
    }

    // 首页新鲜食材列表
    public function getFreshList($fresh_count)
    {
        // 创建验证器
        (new IndexListValidate())->goCheck();
        // 静态调用
        $fresh = \app\api\model\IndexList::getFreshByCount($fresh_count);

        if (!$fresh) {
            throw new IndexListMissException([
                'msg' => '请求的首页新鲜食材列表不存在'
            ]);
        }

        return $fresh;
    }

    // 首页小吃专属列表
    public function getSnackList($snack_count)
    {
        // 创建验证器
        (new IndexListValidate())->goCheck();
        $snack = \app\api\model\IndexList::getSnackByCount($snack_count);

        if (!$snack) {
            throw new IndexListMissException([
                'msg' => '请求的首页小吃专属列表不存在'
            ]);
        }

        return $snack;
    }

    // 首页粉面特惠列表
    public function getFlourList($flour_count)
    {
        //创建验证器
        (new IndexListValidate())->goCheck();
        $flour = \app\api\model\IndexList::getFlourByCount($flour_count);

        if (!$flour) {
            throw new IndexListMissException([
                'msg' => '请求的首页粉面特惠列表不存在'
            ]);
        }

        return $flour;
    }
}
